#include<vector>
using namespace std;
int dx[8] = { 0, 0, -1, -1, -1, 1, 1, 1 };
int dy[8] = { 1, -1, -1, 0, 1, -1, 0, 1 };
int m, n;
void dfs(vector<vector<char>>& board, int i, int j)
{
    int count = 0;
    for (int k = 0; k < 8; k++)
    {
        int x = i + dx[k], y = j + dy[k];
        if (x >= 0 && x < m && y >= 0 && y < n && board[x][y] == 'M')
            count++;
    }
    if (count)
    {
        board[i][j] = count + '0';
        return;
    }
    else
    {
        board[i][j] = 'B';
        for (int k = 0; k < 8; k++)
        {
            int x = i + dx[k], y = j + dy[k];
            if (x >= 0 && x < m && y >= 0 && y < n && board[x][y] == 'E')
                dfs(board, x, y);
        }
    }
}
vector<vector<char>> updateBoard(vector<vector<char>>& board, vector<int>& click) {
    m = board.size(), n = board[0].size();
    if (board[click[0]][click[1]] == 'M')
    {
        board[click[0]][click[1]] = 'X';
        return board;
    }
    dfs(board, click[0], click[1]);

    return board;
}

int main()
{
    return 0;
}